<?php
/**
 * Abstract class representing a database in a connection.
 */
abstract class OORDBDatabase implements IteratorAggregate
{
	/**
	 * Get the name of the database.
	 * @return string Name of the database
	 */
	abstract public function getName();	
	
	/**
	 * Get all the tables in a database.
	 * @return Iterator Iterator across a list of OORDBTable instances.
	 */
	abstract public function getTables();
	
	/**
	 * Get the connection for the database.
	 * @return OORDBConnection Database connection
	 */
	abstract public function getConnection();
	
	/**
	 * Get all the tables in a database.
	 * @return Iterator Iterator across a list of OORDBTable instances.
	 */
	public function getIterator()
	{
		return $this->getTables();
	}
}
?>